package 我的Java学习_算法基础.day_02;

import static 我的Java学习_算法基础.day_01.唯一成对的数.printArray;

public class _018_希尔排序 {
    public static void main(String[] args) {
        int[] a = {9,6,4,3,1};
        shellSort(a);
        printArray(a);
    }
    static void shellSort(int[] array){
        //不断地缩小增量
        for(int interval=array.length/2;interval>0;interval/=2){//一趟一个增量，用增量来分组，组内进行插入排序
            //插排
            for(int i = interval;i<array.length;i++){
                int target = array[i];
                int j = i-interval;
                while(j>-1&&array[j]>target){   //往自己的组里，进行插入排序
                    array[j+interval]=array[j];
                    j-=interval;
                }
                array[j+interval]=target;
            }
        }

    }
}
